package com.gitee.wsl.platform.scheduler

import kotlinx.coroutines.Runnable

internal external val globalThis: dynamic
internal actual fun jsSetTimeout(task: Runnable, delayMillis: Int): TimeoutId =
    TimeoutId(globalThis.setTimeout(task, delayMillis))

internal actual fun jsSetInterval(task: Runnable, delayMillis: Int): TimeoutId =
    TimeoutId(globalThis.setInterval(task, delayMillis))

internal actual fun jsClearTimeout(id: TimeoutId) {
    globalThis.clearTimeout(id.id)
}

internal actual fun jsClearInterval(id: TimeoutId) {
    globalThis.clearInterval(id.id)
}

internal actual class TimeoutId(val id: dynamic)